home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / bootpicturetools / picboot / picboot.guide (.txt) < prev    next >
Amigaguide Document  |  1996-04-07  |  36KB  |  730 lines

  1. @database PicBoot.guide
  2. @Master PicBoot.texinfo
  3. @Width 72
  4. This is the AmigaGuide
  5.  file PicBoot.guide, produced by Makeinfo-1.55 from 
  6. the input file PicBoot.texinfo.
  7. @Node Main "PicBoot.guide"
  8.    This file describes @{b}PicBoot@{ub}, version 2.6, a program that shows an
  9. IFF ILBM or GIF picture during boot.
  10.  @{" Introduction " Link "Introduction"}             What is @{b}PicBoot@{ub}?
  11.  @{" System requirements " Link "System requirements"}      What you need to run the program.
  12.  @{" Legal information " Link "Legal information"}        Legal information and disclaimer.
  13.  @{" Usage " Link "Usage"}                    Basic usage.
  14.  @{" Known problems " Link "Known problems"}           Problems and bugs.
  15.  @{" StopPicBoot " Link "StopPicBoot"}              What is @{b}StopPicBoot@{ub}?
  16.  @{" GetModeID " Link "GetModeID"}                What is @{b}GetModeID@{ub}?
  17.  @{" UnpackILBM " Link "UnpackILBM"}               What is @{b}UnpackILBM@{ub}?
  18.  @{" Author contact " Link "Author contact"}           How to reach me.
  19.  @{" Version history " Link "Version history"}          Version history.
  20. @EndNode
  21. @Node "Introduction" "PicBoot.guide/Introduction"
  22. @Next "System requirements"
  23. @Prev "Main"
  24. @Toc "Main"
  25. Introduction
  26. ************
  27.    Have you removed all output in your 2.0+ startup, and only see a
  28. black screen during boot? Wouldn't it be nice to have a picture
  29. instead? A picture that disappeared when the @{b}Workbench@{ub} screen opened?
  30.    If so, @{b}PicBoot@{ub} is certainly a program for you. What it will do is to
  31. read any IFF file containing an ILBM - or GIF - picture, and show it.
  32. As soon as the @{b}Workbench@{ub} screen appears (or you press any
  33. mouse-button), the picture will go away.
  34.    Features:
  35.    @{b}*@{ub}  Fast picture unpacking, using highly optimized assembler. The
  36.      entire picture is read into memory and then unpacked. This applies
  37.      both to the IFF and the GIF unpacker.
  38.    @{b}*@{ub}  Optional auto-detaching; the picture is loaded as fast as
  39.      possible, with minimal memory fragmentation.
  40.    @{b}*@{ub}  A picture can be shown a user-specified time after the @{b}Workbench@{ub}
  41.      screen opens (see @{"DELAY" Link "DELAY"} and @{"PATCH" Link "PATCH"}).
  42.    @{b}*@{ub}  Extremely flexible argument parser.
  43.    @{b}*@{ub}  Random select among any number of pictures, in several different
  44.      ways.
  45.    @{b}*@{ub}  Force a certain display mode for a picture, even if saved with
  46.      another (can be selected on a picture by picture basis).
  47.    @{b}*@{ub}  The comment field of a file may be used to specify options.
  48.    @{b}*@{ub}  Optional screen centering (horisontally).
  49.    @{b}*@{ub}  Optional screen fading (in various forms). Uses the increased
  50.      palette range in AA (24 bits).
  51.    @{b}*@{ub}  Should work with most "Intuition emulators" for gfx-cards.
  52. @EndNode
  53. @Node "System requirements" "PicBoot.guide/System requirements"
  54. @Next "Legal information"
  55. @Prev "Introduction"
  56. @Toc "Main"
  57. System requirements
  58. *******************
  59.    Apart from OS 2.04+, @{b}PicBoot@{ub} doesn't require any special libraries.
  60. The only non-ROM library required is @{b}iffparse.library@{ub} (which normally
  61. resides in @{b}Libs:@{ub}).
  62.    @{b}PicBoot@{ub} have full support for OS 3.0+ and AA graphics. It should
  63. even work with gfx-cards that have an "Intuition emulator".
  64. @EndNode
  65. @Node "Legal information" "PicBoot.guide/Legal information"
  66. @Next "Usage"
  67. @Prev "System requirements"
  68. @Toc "Main"
  69. Legal information
  70. *****************
  71.    This program is freeware. You may copy and use this program freely,
  72. as long as the following conditions are met:
  73.    @{b}*@{ub}  All files are copied in an unmodified state. If additional
  74.      information is needed, place it in a separate file. Preferably
  75.      redistribute in the original archive form (@{b}*.Lha@{ub}).
  76.      Exception: So called BBS ads may @{i}not@{ui} be added!
  77.    @{b}*@{ub}  The copying is done on a non-commercial and non-profit basis
  78.      only. A copy fee to cover media costs, postage etc. may be
  79.      charged. This fee may not exceed the fee to obtain an AmigaLibDisk
  80.      from Fred Fish.
  81.    @{b}*@{ub}  The copier/spreader is not claiming the Copyright 
  82.  of this
  83.      program.
  84.    Any exceptions from these restrictions requires written permission
  85. from the author, Magnus Holmgren (see @{"Author contact" Link "Author contact"}).
  86. Disclaimer
  87. ==========
  88.    Magnus Holmgren neither assume nor accept any responsibility for the
  89. use or misuse of these programs. He also will not be held liable for
  90. damages or any compensation due to loss of profit or any other damages
  91. arising out of the use, or inability to use these programs.
  92.    Magnus Holmgren will not be liable for any damage arising from the
  93. failure of these programs to perform as described, or any destruction
  94. of other programs or data residing on a system attempting to run the
  95. programs. While he know of no damaging errors, the user of these
  96. programs uses it at his or her own risk.
  97. @EndNode
  98. @Node "Usage" "PicBoot.guide/Usage"
  99. @Next "Known problems"
  100. @Prev "Legal information"
  101. @Toc "Main"
  102. Usage
  103. *****
  104.    To activate @{b}PicBoot@{ub}, add a line to your @{b}S:Startup-Sequence@{ub}, looking
  105. something like this:
  106.      PicBoot Pics:Hi-res/Calvin01.Pic DETACH
  107. Or, if you have a list of files in "Work:Text/PicList":
  108.      PicBoot Work:Text/PicList LIST DETACH
  109.    Or, if your drawer @{b}Pics:BootPics@{ub} contains some pictures:
  110.      PicBoot Pics:BootPics/#?.(Pic|Gif) DETACH
  111.    This line should be located near the beginning in the
  112. @{b}S:Startup-Sequence@{ub} (no point in placing it near the @{b}LoadWB@{ub} command, is
  113. it? :), but keep it after @{b}SetPatch@{ub}. @{b}PicBoot@{ub} will only output any text
  114. if it fails, so don't re-direct its output. Note however that if you
  115. place @{b}PicBoot@{ub} @{i}before@{ui} any additional monitors are installed, you'll be
  116. stuck with the default.monitor for showing your picture. The DEFAULT
  117. switch may be of help here.
  118.    Make sure no program makes any output in the CLI window, since then
  119. the @{b}Workbench@{ub} screen will open with a boring CLI-window instead...
  120.    Options:
  121.  @{" FILES " Link "FILES"}           Picture(s) to view, or name(s) of listfile(s).
  122.  @{" MODEID " Link "MODEID"}          Use this display mode.
  123.  @{" LIST " Link "LIST"}            The pictures to view are stored in a listfile.
  124.  @{" CENTER " Link "CENTER"}          Should the screen be centered?
  125.  @{" DEFAULT " Link "DEFAULT"}         Force the default monitor to be used?
  126.  @{" AUTOSCROLL " Link "AUTOSCROLL"}      Enable autoscrolling?
  127.  @{" VIDEOOVERSCAN " Link "VIDEOOVERSCAN"}   Use video overscan?
  128.  @{" RTG " Link "RTG"}             Make @{b}PicBoot@{ub} work with gfx-cards.
  129.  @{" WRITEPIXELLINE " Link "WRITEPIXELLINE"}  Might make the GIF reader faster.
  130.  @{" FADEIN " Link "FADEIN"}          Fade speed when opening picture.
  131.  @{" FADEOUT " Link "FADEOUT"}         Fade speed when closing picture.
  132.  @{" FADEWB " Link "FADEWB"}          Fade speed of @{b}Workbench@{ub} screen after closing picture.
  133.  @{" DELAY " Link "DELAY"}           Delay close after @{b}Workbench@{ub} screen open.
  134.  @{" PATCH " Link "PATCH"}           Prevent @{b}Workbench@{ub} from open in front of @{b}PicBoot@{ub}.
  135.  @{" DETACH " Link "DETACH"}          Detach from the @{b}Shell@{ub} when picture is loaded.
  136.  @{" ACTIVATEWB " Link "ACTIVATEWB"}      Try to activate @{b}Workbench@{ub} window after close.
  137. @EndNode
  138. @Node "FILES" "PicBoot.guide/FILES"
  139. @Next "MODEID"
  140. @Toc "Usage"
  141. FILES
  142. =====
  143.    This is the only required argument. Here you specify the name of the
  144. picture you want to view. You may enter several files here, in which
  145. case @{b}PicBoot@{ub} will select one of them randomly, and show that one.
  146.    The name(s) can also be the name of an ASCII file containing a
  147. filename list if you specified the @{"LIST" Link "LIST"} option.
  148.    The name(s) can also be the name of a drawer, in which case @{b}PicBoot@{ub}
  149. will randomly select one of the files in this drawer. To use a pattern
  150. during this scanning, simply enter the pattern like it had been the
  151. name of a file in the drawer. Example:
  152.      Work:Pics/#?.gif
  153. which would make @{b}PicBoot@{ub} select a file ending in @{b}.gif@{ub} in the drawer
  154. @{b}Work:Pics@{ub}
  155.    If the comment field of the selected listfile or picture starts with
  156. "*PicBoot*: " (case sensitive), then the rest of the comment is taken
  157. to be arguments, like those in a @{"LIST" Link "LIST"} file.
  158.    You may freely mix picture and drawer names. Listfiles can only be
  159. mixed with the other two ones if the comment contains the @{"LIST" Link "LIST"} switch.
  160. In that case, the @{"LIST" Link "LIST"} argument should not be used on the command line
  161. (or in a list file). Ofcourse you can random select among list files
  162. with the "drawer scanner" if you like.. :)
  163. @EndNode
  164. @Node "MODEID" "PicBoot.guide/MODEID"
  165. @Next "LIST"
  166. @Prev "FILES"
  167. @Toc "Usage"
  168. MODEID
  169. ======
  170.    Short form: M
  171.    NOTE: This argument is mainly for the more "advanced" user.
  172.    This argument should be a decimal number specifying which screen
  173. mode to use.  It basically replaces the so called CAMG hunk in an ILBM
  174. file (since it contains which screen mode to use). Thus, you must
  175. select mode with care, or else the picture will look like trash
  176. (nothing more serious can happen. I hope! :). When showing GIF files,
  177. it will override the internal "best mode" routines (which aren't good
  178. at all. But I haven't bothered to add code to make them better.. :).
  179.    To make it easier for you to find out which display mode id to use,
  180. there is a small program called @{b}GetModeID@{ub} included, which uses the
  181. @{b}ReqTools@{ub} or @{b}Asl@{ub} screenmode requester. Simply select the display mode
  182. you want, and it will print out the number you should use here.  See
  183. @{"GetModeID" Link "GetModeID"}.
  184.    The mode id will be passed through the same validity checking as a
  185. normal so called CAMG chunk, so @{b}PicBoot@{ub} should handle bad values
  186. properly (although I haven't tested this much.. :).
  187. @EndNode
  188. @Node "LIST" "PicBoot.guide/LIST"
  189. @Next "CENTER"
  190. @Prev "MODEID"
  191. @Toc "Usage"
  192.    Short form: L
  193.    If this switch is specified, @{b}PicBoot@{ub} will interpret the files in the
  194. @{"FILES" Link "FILES"} argument as names of files containing a list of pictures (or
  195. rather, argument lines). @{b}PicBoot@{ub} will then randomly select one of the
  196. lines in the selected file, and process it almost like a normal argument
  197. line. The only difference is that you can't use the @{"DETACH" Link "DETACH"}, @{"DELAY" Link "DELAY"},
  198. @{"PATCH" Link "PATCH"} or @{"ACTIVATEWB" Link "ACTIVATEWB"} arguments. These arguments may not be specified in
  199. a listfile (no point in doing it anyway).
  200.    The listfile is an ASCII (text) file with a simple layout. On the
  201. first line you specify the number of argument lines in the file. This is
  202. usually <number of lines in file>-2 (one line is occupied by the count,
  203. and the other is the last linefeed). If this value is zero, then @{b}PicBoot@{ub}
  204. will exit silently. The rest of the file is simply the argument lines to
  205. choose from. An example:
  206.      4
  207.      Work:Pics/Comics/Calvin02.Pic MODEID 137220
  208.      Work:Pics/Comics/Calvin03.Gif
  209.      Work:Text/MoreCalvins.txt LIST CENTER ON
  210.      Work:Pics/Misc/#?.Gif
  211.    Note that any arguments specified from the CLI, or in any previous
  212. listfile, will be taken as the new default value. In the listfile you
  213. may alter this default. This does not include the LIST argument
  214. (ofcourse). It is always turned off before parsing a line.
  215.    @{i}Warning: @{ui}Since you may enter a new listfile within a listfile, you
  216. can be caught in an endless loop, constantly changing (maybe to the
  217. same) listfile. No checking for this is done. Also, since there is no
  218. CLI-window around, you have no chance to send @{b}PicBoot@{ub} any CTRL-C, if
  219. @{b}PicBoot@{ub} should happen to listen to this. You have been warned! :)
  220.    @{i}Note: @{ui}A line in a listfile may not be more than 512 chars, or it
  221. will be truncated when read. This shouldn't cause any problems I think..
  222. @EndNode
  223. @Node "CENTER" "PicBoot.guide/CENTER"
  224. @Next "DEFAULT"
  225. @Prev "LIST"
  226. @Toc "Usage"
  227. CENTER
  228. ======
  229.    Short form: C
  230.    Possible arguments: YES, ON, NO, OFF. Default is NO.
  231.    If this switch is on (argument is YES or ON), @{b}PicBoot@{ub} will center the
  232. picture. This centering should work fine for most screen modes, but one
  233. can never know.. :) If a screen promotor is active, then @{b}PicBoot@{ub} can get
  234. it wrong (if the screen is opened in another mode than @{b}PicBoot@{ub} had
  235. asked for).
  236. @EndNode
  237. @Node "DEFAULT" "PicBoot.guide/DEFAULT"
  238. @Next "AUTOSCROLL"
  239. @Prev "CENTER"
  240. @Toc "Usage"
  241. DEFAULT
  242. =======
  243.    Short form: DEF
  244.    Possible arguments: YES, ON, NO, OFF. Default is NO.
  245.    If this switch is on (argument is YES or ON), @{b}PicBoot@{ub} will force the
  246. picture to use the default.monitor, regardless of what was actually
  247. stored in the picture (in the CAMG chunk). This is needed since very
  248. early in the startup, default.monitor is the only monitor available
  249. (e.g.  multiscan.monitor is normally not available). In the future, I
  250. might add more types of "forcing" (e.g. force a picture to PAL, NTSC or
  251. whatever that might be useful).
  252.    This switch also acts on the @{"MODEID" Link "MODEID"} parameter, if specified.
  253. @EndNode
  254. @Node "AUTOSCROLL" "PicBoot.guide/AUTOSCROLL"
  255. @Next "VIDEOOVERSCAN"
  256. @Prev "DEFAULT"
  257. @Toc "Usage"
  258. AUTOSCROLL
  259. ==========
  260.    Short form: AS
  261.    Possible arguments: YES, ON, NO, OFF. Default is NO.
  262.    If this switch is on (argument is YES or ON), the OS 2.0+
  263. autoscrolling of screens will be enabled.
  264.    @{i}Note:@{ui} During boot, this switch may make the actual display a bit
  265. smaller than normally possible. There is nothing I can do about that...
  266. :) You can, however, by ensuring that ENV:/IPREFS is properly set up
  267. before @{b}PicBoot@{ub} is started. Or you could try the @{"VIDEOOVERSCAN" Link "VIDEOOVERSCAN"} switch.
  268. @EndNode
  269. @Node "VIDEOOVERSCAN" "PicBoot.guide/VIDEOOVERSCAN"
  270. @Next "RTG"
  271. @Prev "AUTOSCROLL"
  272. @Toc "Usage"
  273. VIDEOOVERSCAN
  274. =============
  275.    Short form: VO
  276.    Possible arguments: YES, ON, NO, OFF. Default is NO.
  277.    If this switch is on (argument is YES or ON), the visible size of the
  278. opened screen will be as large as the system can handle (assuming the
  279. picture is large enough). Forces @{"AUTOSCROLL" Link "AUTOSCROLL"} to YES.
  280. @EndNode
  281. @Node "RTG" "PicBoot.guide/RTG"
  282. @Next "WRITEPIXELLINE"
  283. @Prev "VIDEOOVERSCAN"
  284. @Toc "Usage"
  285.    Possible arguments: YES, ON, NO, OFF. Default is NO.
  286.    If this switch is on (argument in YES or ON), then @{b}PicBoot@{ub} will do
  287. things a little differently, in an attempt to make it work with
  288. gfx-cards (it have been tested with @{b}Picasso II@{ub}). The main difference is
  289. that the screen is opened first, and the picture is decoded into this
  290. screen (usually the picture is decoded first, and then the screen is
  291. opened).  Thus, you should only use this switch if the picture should
  292. be shown with the gfx-card rather than the native @{b}Amiga@{ub} graphics. If
  293. the gfx-card isn't used, the picture decoding may be a little slower.
  294.    Oh, btw, RTG stands for ReTargetable Graphics.
  295.    @{i}Note: @{ui}This feature requires OS 3.0 to work. If you don't have OS
  296. 3.0, then this argument is ignored.
  297.    @{i}Note: @{ui}You might need to specify a new @{"MODEID" Link "MODEID"} in order for @{b}PicBoot@{ub} to
  298. use gfx-card screen.
  299. @EndNode
  300. @Node "WRITEPIXELLINE" "PicBoot.guide/WRITEPIXELLINE"
  301. @Next "FADEIN"
  302. @Prev "RTG"
  303. @Toc "Usage"
  304. WRITEPIXELLINE
  305. ==============
  306.    Short form: WPL
  307.    Possible arguments: YES, ON, NO, OFF. Default is NO.
  308.    If this switch is on (argument is YES or ON), then @{b}PicBoot@{ub} will use
  309. a ROM function to convert/write the pixel data of a GIF picture.
  310. Please note that this only have any effect if @{"RTG" Link "RTG"} have been used, and
  311. the opened screen isn't a native Amiga screen.
  312.    In some cases, this can make @{b}PicBoot@{ub} faster, but in others, it can
  313. make @{b}PicBoot@{ub} slower. There is an explanation for this, but it is a bit
  314. technical. If you don't understand it (or you don't know enough about
  315. your gfx-card), then I suggest you test it a little, finding out which
  316. is fastest for different pictures.
  317.    Most gfx-cards have a "chunky" screen. That is, each pixel is stored
  318. in one byte, which specifies which color (in a palette) that the pixel
  319. have. This is different from the native @{b}Amiga@{ub} screen that have
  320. bitplanes (where the color number is spread over several bytes). Since
  321. a GIF picture stores the data in a chunky format, it would be a waste
  322. of time to first convert the chunky data to bitplane form, and then
  323. back again, if it should be displayed in a chunky screen.
  324.    In that case (a chunky screen), this switch can improve the speed
  325. quite a lot, if a certain ROM function is patched by the Intuition
  326. emulator.  This patch should simply write the chunky data directly to
  327. the right area of the screen.
  328.    However, not all gfx-card screens are chunky (at least the @{b}Picasso II@{ub}
  329. stores 2-16 color screens as bitplanes), and perhaps the "Intuition
  330. emulator" haven't patched the above mentioned function. In those cases,
  331. then this switch will make things slower (since the original function
  332. (which converts the chunky data to bitplane form) is quite a bit slower
  333. than the routines in @{b}PicBoot@{ub}).
  334.    To test which is fastest, use something similar to the following
  335. commads:
  336.      PicBoot Pics:Gifs/Island.gif RTG ON DETACH
  337.      PicBoot Pics:Gifs/Island.gif RTG ON DETACH WPL
  338. and measure how long time both commands took to run (note that @{b}PicBoot@{ub}
  339. detaches after the picture have been completely decoded), and only use
  340. the WPL switch if it made @{b}PicBoot@{ub} faster.
  341. @EndNode
  342. @Node "FADEIN" "PicBoot.guide/FADEIN"
  343. @Next "FADEOUT"
  344. @Prev "WRITEPIXELLINE"
  345. @Toc "Usage"
  346. FADEIN
  347. ======
  348.    Short form: FI
  349.    Argument range: 1 to 4. Default is no value.
  350.    This value specifies the speed with which the picture should fade in
  351. when the screen is opened. HAM pictures can't be faded.
  352. @EndNode
  353. @Node "FADEOUT" "PicBoot.guide/FADEOUT"
  354. @Next "FADEWB"
  355. @Prev "FADEIN"
  356. @Toc "Usage"
  357. FADEOUT
  358. =======
  359.    Short form: FO
  360.    Argument range: 1 to 4. Default is no value.
  361.    This value specifies the speed with which the picture should fade
  362. out when the screen is closed. HAM pictures can't be faded. Only useful
  363. in combination with @{"DELAY" Link "DELAY"} (otherwise the picture will be in the back,
  364. were the fade isn't visible! :).
  365. @EndNode
  366. @Node "FADEWB" "PicBoot.guide/FADEWB"
  367. @Next "DELAY"
  368. @Prev "FADEOUT"
  369. @Toc "Usage"
  370. FADEWB
  371. ======
  372.    Short form: FWB
  373.    Argument range: 1 to 4. Default is no value.
  374.    This value specifies the speed with which the @{b}Workbench@{ub} screen
  375. should fade in when the picture screen have been closed. Intended to be
  376. used in combination with the @{"FADEOUT" Link "FADEOUT"} (and @{"DELAY" Link "DELAY"}) argument(s).
  377. @EndNode
  378. @Node "DELAY" "PicBoot.guide/DELAY"
  379. @Next "PATCH"
  380. @Prev "FADEWB"
  381. @Toc "Usage"
  382. DELAY
  383. =====
  384.    Short form: DL
  385.    A "problem" with @{b}PicBoot@{ub} is that the @{b}Workbench@{ub} screen first opens,
  386. and then processes the @{b}Sys:WBStartup@{ub} drawer, which takes a little time.
  387. This means that the picture @{b}PicBoot@{ub} shows disappear before the boot is
  388. complete. To avoid this problem, the DELAY switch can be use to specify
  389. the number of ticks (there are 50 ticks each second) @{b}PicBoot@{ub} will wait
  390. after the @{b}Workbench@{ub} screen have opened.
  391.    However, this isn't perfect. When the @{b}Workbench@{ub} screen opens, the
  392. @{b}PicBoot@{ub} screen must be brought back to the front again. This causes a
  393. little "flicker". To avoid this, use the @{"PATCH" Link "PATCH"} parameter as well (this
  394. feature requires OS 3.0+ to work).
  395.    There is a special delay value, 0, which causes @{b}PicBoot@{ub} to wait until
  396. you either press any mouse button, or another program sends @{b}PicBoot@{ub} a
  397. break signal (CTRL-C). The program @{"StopPicBoot" Link "StopPicBoot"} was written to do this.
  398. @EndNode
  399. @Node "PATCH" "PicBoot.guide/PATCH"
  400. @Next "DETACH"
  401. @Prev "DELAY"
  402. @Toc "Usage"
  403. PATCH
  404. =====
  405.    Short form: P
  406.    If this switch is specified, @{b}PicBoot@{ub} will install a patch in
  407. @{b}Intuition@{ub}, so that the @{b}Workbench@{ub} screen (or rather, any screen opened,
  408. that explicitly doesn't say that the screen shouldn't open behind the
  409. others) doesn't open in front of the @{b}PicBoot@{ub} screen. This removes the
  410. "flicker" that normally occurs when using the @{"DELAY" Link "DELAY"} option. For this
  411. option to be useful, the @{"DELAY" Link "DELAY"} parameter must be used as well.
  412.    @{i}Note 1: @{ui}This option only works on OS 3.0 or higher. This is due to
  413. the OS (as far as I know), and there is nothing I can do about it (tech
  414. note: @{b}Workbench@{ub} in OS 2.0x doesn't seem to call the open screen
  415. function via the external library vector).
  416.    @{i}Note 2: @{ui}This kind of patching is not a recommended thing to do.
  417. Programs should not do temporary patches like this. However, to avoid
  418. the flickering, there is no alternative.. :)
  419.    @{i}Note 3: @{ui}In case some other program patches the same function after
  420. @{b}PicBoot@{ub} have installed its patch - and you don't have a program like
  421. e.g. @{b}SetMan@{ub} installed - then @{b}PicBoot@{ub} will leave a small memory
  422. allocation behind (6 bytes), to avoid any problems.
  423. @EndNode
  424. @Node "DETACH" "PicBoot.guide/DETACH"
  425. @Next "ACTIVATEWB"
  426. @Prev "PATCH"
  427. @Toc "Usage"
  428. DETACH
  429. ======
  430.    Short form: D
  431.    If this switch is specified, @{b}PicBoot@{ub} will detach from its calling
  432. CLI when the picture is fully loaded and displayed. If you specify this
  433. option, you shouldn't "Run" @{b}PicBoot@{ub}. This option will reduce memory
  434. fragmentation, and will ensure that the picture gets loaded quickly. I
  435. don't think this feature will cause any problems, but I added the
  436. switch just in case.
  437. @EndNode
  438. @Node "ACTIVATEWB" "PicBoot.guide/ACTIVATEWB"
  439. @Prev "DETACH"
  440. @Toc "Usage"
  441. ACTIVATEWB
  442. ==========
  443.    Short form: AWB
  444.    If this argument is specified, then @{b}PicBoot@{ub} will try to activate a
  445. @{b}Workbench@{ub} window after closing the picture. This might be useful if you
  446. are using the @{"DELAY" Link "DELAY"} argument.
  447. @EndNode
  448. @Node "Known problems" "PicBoot.guide/Known problems"
  449. @Next "StopPicBoot"
  450. @Prev "Usage"
  451. @Toc "Main"
  452. Known problems
  453. **************
  454.    I do not know of any real bugs in @{b}PicBoot@{ub}. However, certain parts of
  455. the program may still contain bugs. E.g.,  pictures that have a mask
  456. bitplane (mskHasMask) are supported, but since I only have one
  457. (compressed) picture that have a mask, there might be a bug in that
  458. code (can't test it properly).  Please report any problems!
  459.    Currently there is no support for SHAM, PCHG and similar pictures.
  460. I'm not sure if this could be implemented in a "clean" way (that would
  461. work on future systems etc). These pictures aren't that common, and I
  462. have an Amiga with AA-graphics, so... :) Color cycling is currently
  463. ignored (I have no need for it).
  464.    Interlaced GIF pictures aren't supported, since I don't have any such
  465. picture (well, actually I have ONE :). Besides, the decompression of
  466. such pictures would be slower anyway.
  467.    @{b}PicBoot@{ub} doesn't remap GIF files in any way. Even if you have ECS,
  468. GIF files can still be useful. This is because a GIF file can have from
  469. 2 to 256 colors (inclusive). Thus, if you have a program that can save
  470. a 16-color picture as a 16-color GIF file, there will be no problem to
  471. view it with @{b}PicBoot@{ub}.
  472.    @{b}PicBoot@{ub} doesn't make use of any "chunky to planar" hardware, if it
  473. should happen to be installed (e.g. Aikiko). Anyone who have it, so I
  474. can test it if I should decide implement it? :) It would be fairly
  475. simple to do, since my own (rather fast, I might add :) chunky to
  476. planar routines have very similar restrictions.
  477.    The "best mode" routine used in the GIF reader isn't good at all
  478. (this includes the ROM function in OS 3.0+! :). I suggest you use the
  479. @{"MODEID" Link "MODEID"} parameter instead (Correction: The ROM function isn't good when
  480. there are several different monitors to choose from. If only one or two
  481. (similar) monitors are available, then the result is usually rather
  482. good).
  483.    Pictures with more than 8 bitplanes are currently not supported by
  484. @{b}PicBoot@{ub}.
  485.    The centering for (some?) Super72 screens doesn't work. I suspect
  486. this is an OS-"bug" (I know that @{b}PicBoot@{ub} calculates a reasonable
  487. offset, which @{b}Intuition@{ub} seems to ignore).
  488. @EndNode
  489. @Node "StopPicBoot" "PicBoot.guide/StopPicBoot"
  490. @Next "GetModeID"
  491. @Prev "Known problems"
  492. @Toc "Main"
  493. StopPicBoot
  494. ***********
  495.    @{b}StopPicBoot@{ub} is a small program that simply tells @{b}PicBoot@{ub} to quit, if
  496. it should happen to be in memory. This is useful in combination with
  497. the @{"DELAY" Link "DELAY"} option. If this is set to 0, @{b}PicBoot@{ub} expects someone to tell
  498. it when it is time to exit, and this is what @{b}StopPicBoot@{ub} does.
  499.    By having @{b}StopPicBoot@{ub} in @{b}Sys:WBStartup@{ub}, then @{b}PicBoot@{ub} will close its
  500. screen when the boot process almost complete (the tooltype @{b}STARTPRI@{ub}
  501. should be very low (-120 or so), so that @{b}StopPicBoot@{ub} is started as the
  502. last program)
  503. @EndNode
  504. @Node "GetModeID" "PicBoot.guide/GetModeID"
  505. @Next "UnpackILBM"
  506. @Prev "StopPicBoot"
  507. @Toc "Main"
  508. GetModeID
  509. *********
  510.    @{b}GetModeID@{ub} is a simle program that shows a @{b}Asl@{ub} or @{b}ReqTools@{ub} screenmode
  511. requester, whichever is available. The program will then print out the
  512. decimal identifier for the selected screenmode, suitable for use
  513. together with the @{"MODEID" Link "MODEID"} parameter. This program can only be used from
  514. a @{b}Shell@{ub}. Example usage:
  515.        PicBoot Island.Gif MODEID `GetModeID`
  516.    This will first show a screenmode requester (if you have one, that
  517. is), and then show the GIF-picture in the selected screenmode.
  518. @EndNode
  519. @Node "UnpackILBM" "PicBoot.guide/UnpackILBM"
  520. @Next "Author contact"
  521. @Prev "GetModeID"
  522. @Toc "Main"
  523. UnpackILBM
  524. **********
  525.    @{b}UnpackILBM@{ub} is another simple program (at least in theory... :). It
  526. will take any IFF ILBM picture and unpack the so called BODY chunk in
  527. it (this is the actual image data). This means that e.g. @{b}PicBoot@{ub} will
  528. be able to display that image a little faster, at least if loading it
  529. from some fast media. Or, if you use @{b}PPShow@{ub}/@{b}ShowIFF@{ub}, you could repack
  530. the picture with @{b}PowerPacker@{ub}/@{b}Xpk@{ub}, to maximize the compression (as the
  531. compression used in IFF ILBM isn't a very efficient one. But on the
  532. other hand, it is rather fast and simple). But then @{b}PicBoot@{ub} won't be
  533. able to load them.. :) Example usage:
  534.        UnpackILBM Island.Pic Island.Pic.NoComp
  535.        UnpackILBM Island.Pic
  536.    The first example till unpack the picture to a new one, while the
  537. other will - via a temprary file - overwrite the original picture with
  538. the uncompressed version.
  539.    @{i}Note:@{ui} I haven't tested this program @{i}that@{ui} much. I've converted a few
  540. pictures, so it seems to work fine (at least when there aren't any
  541. errors), but one can never now.. Please report any problems!
  542.    @{i}Note:@{ui} This program doesn't strip any information. All chunks will
  543. remain. The picture data is only decompressed.
  544. @EndNode
  545. @Node "Author contact" "PicBoot.guide/Author contact"
  546. @Next "Version history"
  547. @Prev "UnpackILBM"
  548. @Toc "Main"
  549. Author contact
  550. **************
  551.    @{b}PicBoot@{ub} was written by Magnus Holmgren. If you have any comments
  552. etc, feel free to send me a note. You can reach me via internet on this
  553. address:
  554.      cmh@augs.se
  555.    Fido-net messages should go to "Magnus Holmgren",
  556. 2:204/404.6@fidonet.org.  Snail mail should reach me if you write the
  557. following address on the envelope:
  558.      Magnus Holmgren
  559.      Kvarnbergsv
  560. gen 4
  561.      S-444 47  Stenungsund
  562.      SWEDEN
  563. @EndNode
  564. @Node "Version history" "PicBoot.guide/Version history"
  565. @Prev "Author contact"
  566. @Toc "Main"
  567. Version history
  568. ***************
  569.  @{" Version 1.00-1.03 " Link "Version 1.00-1.03"} 
  570.  @{" Version 2.0 " Link "Version 2.0"} 
  571.  @{" Version 2.1 " Link "Version 2.1"} 
  572.  @{" Version 2.2 " Link "Version 2.2"} 
  573.  @{" Version 2.3 " Link "Version 2.3"} 
  574.  @{" Version 2.4 " Link "Version 2.4"} 
  575.  @{" Version 2.5 " Link "Version 2.5"} 
  576.  @{" Version 2.6 " Link "Version 2.6"} 
  577. @EndNode
  578. @Node "Version 1.00-1.03" "PicBoot.guide/Version 1.00-1.03"
  579. @Next "Version 2.0"
  580. @Toc "Version history"
  581. Version 1.00-1.03
  582. =================
  583.    Ancient versions.
  584. @EndNode
  585. @Node "Version 2.0" "PicBoot.guide/Version 2.0"
  586. @Next "Version 2.1"
  587. @Prev "Version 1.00-1.03"
  588. @Toc "Version history"
  589. Version 2.0
  590. ===========
  591.    Release date: 29 Mar 94
  592.    @{b}*@{ub}  BLACK argument removed. Not needed any more, since @{b}PicBoot@{ub} now
  593.      will first allocate the needed memory, decode the picture into
  594.      this memory, and then open the screen. This makes the screen
  595.      opening/closing a little faster too (practically instaneous on my
  596.      A4000/040).
  597.    @{b}*@{ub}  Pictures (or rather, brushes) that were less than 16 pixels wide
  598.      wouldn't decompress properly... :)
  599.    @{b}*@{ub}  Added support for the CMAPOK flag in the BitMapHeader.bmh_Flags
  600.      (previously called bmh_Pad) field (if this flag is set it
  601.      indicates that the color map contains 8 bits/color rather than 4
  602.      bits/color).
  603.    @{b}*@{ub}  Major code cleanup. Made the program somewhat larger, but... :)
  604.    @{b}*@{ub}  GIF support added. Should be a little faster than @{b}PPShow@{ub}.. :)
  605.    @{b}*@{ub}  The @{"MODEID" Link "MODEID"} argument wasn't properly "passed on" to any following
  606.      listfile(s).
  607.    @{b}*@{ub}  Rewrote @{b}rtGetModeID@{ub} into @{b}GetModeID@{ub}, that first checks for @{b}Asl@{ub},
  608.      and then tries with @{b}ReqTools@{ub} before giving up. This new version is
  609.      in C, compiled with DICE, without any startup code, and is fully
  610.      residentable. :) See @{"GetModeID" Link "GetModeID"}.
  611.    @{b}*@{ub}  Included @{b}UnpackILBM@{ub}, that takes any IFF ILBM file (with a BODY
  612.      chunk, i.e. a normal picture) and writes it with an uncompressed
  613.      BODY instead. Written upon user request. See @{"UnpackILBM" Link "UnpackILBM"}.
  614. @EndNode
  615. @Node "Version 2.1" "PicBoot.guide/Version 2.1"
  616. @Next "Version 2.2"
  617. @Prev "Version 2.0"
  618. @Toc "Version history"
  619. Version 2.1
  620. ===========
  621.    Release date: 14 May 94
  622.    @{b}*@{ub}  The @{"DEFAULT" Link "DEFAULT"} parameter didn't do anything. Fixed
  623.    @{b}*@{ub}     @{b}UpackILBM@{ub} and @{b}GetModeID@{ub} updated a little. Version string added,
  624.      recompiled with @{b}DICE@{ub} 3.0 and some other minor changes.
  625. @EndNode
  626. @Node "Version 2.2" "PicBoot.guide/Version 2.2"
  627. @Next "Version 2.3"
  628. @Prev "Version 2.1"
  629. @Toc "Version history"
  630. Version 2.2
  631. ===========
  632.    Release date: 12 Jul 94
  633.    @{b}*@{ub}  If the listfile was too short (i.e. not enough number of lines in
  634.      it), @{b}PicBoot@{ub} would crash.
  635.    @{b}*@{ub}  Made the detaching code more system friendly. I hope this will
  636.      fix the problems a few users have had.
  637.    @{b}*@{ub}  A few minor bugs fixed + some minor optimizations...
  638.    @{b}*@{ub}  If the number on the first line in the listfile is 0, then @{b}PicBoot@{ub}
  639.      will exit silently. Now why did I add this... >;)
  640.    @{b}*@{ub}  Improved the random number algorithm.
  641.    @{b}*@{ub}  Added the @{"DELAY" Link "DELAY"} parameter.
  642.    @{b}*@{ub}  Added the @{"PATCH" Link "PATCH"} parameter.
  643.    @{b}*@{ub}  Tweeked the GIF-unpacker a little. Found yet another Macro68
  644.      (V3.170) bug while doing that.. :/ (Watch out for bra.l to other
  645.      sections/modules when generating code for the 68020+. The branch
  646.      target is @{i}not @{ui}correct. :)
  647. @EndNode
  648. @Node "Version 2.3" "PicBoot.guide/Version 2.3"
  649. @Next "Version 2.4"
  650. @Prev "Version 2.2"
  651. @Toc "Version history"
  652. Version 2.3
  653. ===========
  654.    Release date: 30 Aug 94
  655.    @{b}*@{ub}  Rewrote startup code and argument parser in C, for easier
  656.      maintainance (and to simplify the implementation of some of the
  657.      features below).
  658.    @{b}*@{ub}  You can now also specify a directory (with optional pattern
  659.      matching), and @{b}PicBoot@{ub} will randomly select among the files found.
  660.      As usual, you can use this feature whereever @{b}PicBoot@{ub} used to
  661.      expect a file name.
  662.    @{b}*@{ub}  If the comment field of a file that @{b}PicBoot@{ub} will read (i.e. a list
  663.      file or a picture) starts with the string "*PicBoot*: " (case
  664.      sensitive), then the rest of the comment is assumed to be
  665.      arguments, to be parsed like they had been found in a list file.
  666.    @{b}*@{ub}     @{b}UnpackILBM@{ub} will not delete the temp file if it couldn't be
  667.      renamed to the original.
  668.    @{b}*@{ub}  Removed a piece of debug code in the @{b}OpenScreen()@{ub} patch (it
  669.      flashed the screen). Harmless, but annoying.. :)
  670. @EndNode
  671. @Node "Version 2.4" "PicBoot.guide/Version 2.4"
  672. @Next "Version 2.5"
  673. @Prev "Version 2.3"
  674. @Toc "Version history"
  675. Version 2.4
  676. ===========
  677.    Release date: 11 Oct 94
  678.    @{b}*@{ub}  Added the arguments @{"FADEIN" Link "FADEIN"}, @{"FADEOUT" Link "FADEOUT"} and @{"FADEWB" Link "FADEWB"}, to make various
  679.      color fades when the screen is opened/closed.
  680.    @{b}*@{ub}  Modified the random routines again (changed the seed source). I
  681.      hope it works better now.. :)
  682.    @{b}*@{ub}  If @{"DETACH" Link "DETACH"} was used and a relative filename was used, then the file
  683.      wasn't found (except in some cases).
  684.    @{b}*@{ub}  Using @{"PATCH" Link "PATCH"} in combination with @{"DELAY" Link "DELAY"} on pre-OS 3.0 systems
  685.      caused a "Not enough memory" message to be printed, and the picture
  686.      wasn't showed (the argument should silently be ignored).
  687.    @{b}*@{ub}  Some error messages lacked a final linefeed char (an autodoc was
  688.      a bit misleading.. :).
  689.    @{b}*@{ub}  The @{"DELAY" Link "DELAY"} was incorrectly interpreted as seconds, and not as
  690.      ticks.
  691.    @{b}*@{ub}  Closing the picture before a @{"DELAY" Link "DELAY"} timeout had expired caused a
  692.      crash.
  693. @EndNode
  694. @Node "Version 2.5" "PicBoot.guide/Version 2.5"
  695. @Next "Version 2.6"
  696. @Prev "Version 2.4"
  697. @Toc "Version history"
  698. Version 2.5
  699. ===========
  700.    Release date: 13 Oct 94
  701.      The @{b}Workbench@{ub} screen wasn't "unlocked" in some cases (when either
  702.      @{"FADEWB" Link "FADEWB"} or @{"ACTIVATEWB" Link "ACTIVATEWB"} had been used).
  703. @EndNode
  704. @Node "Version 2.6" "PicBoot.guide/Version 2.6"
  705. @Prev "Version 2.5"
  706. @Toc "Version history"
  707. Version 2.6
  708. ===========
  709.    Release date: 30 Nov 94
  710.    @{b}*@{ub}  Added @{"RTG" Link "RTG"} switch, which will make @{b}PicBoot@{ub} attempt to be more
  711.      compatible with various "Intuition emulators" for gfx-cards. Don't
  712.      use this switch if you don't need to; it will cause the screen to
  713.      be opened before the rendering (possibly making it slower).
  714.      Also added @{"WRITEPIXELLINE" Link "WRITEPIXELLINE"}, which may improve the speed of the GIF
  715.      reader sometimes, when using the @{"RTG" Link "RTG"}-mode.
  716.      Thanks go to Roger Westerlund, who made me actually try to make
  717.      @{b}PicBoot@{ub} @{"RTG" Link "RTG"} friendly, and also did all the needed testing (I don't
  718.      have any gfx-card :/).
  719.    @{b}*@{ub}  Changed the screenmode id "validator". Needed for better @{"RTG" Link "RTG"}
  720.      compatibility.
  721.    @{b}*@{ub}  Some fade related code was a bit broken, causing problems with
  722.      e.g.  HAM-pictures.
  723.    @{b}*@{ub}     @{b}UnpackILBM@{ub} is now able to decompress via a temporary file if
  724.      the file and the current directory are on different volumes. Also
  725.      improved some error reporting.
  726.    @{b}*@{ub}     @{b}GetModeID@{ub} now filters out some useless modes (the dual payfield
  727.      (DPF) ones). Also, the @{b}ReqTools@{ub} screen mode requester didn't show
  728.      "non standard" modes (such as HAM and EHB).
  729. @EndNode
  730.